package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc CloneRecentRecyclableLatestProgressValueComReqDto
 * @使用场景
 */
@Data
public class CloneRecentRecyclableLatestProgressValueComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 进度值计算公式 MANUAL_REPORT:人工填报进度值 CLONE_EVA_OBJECT:当前树进度值克隆主树 OKR_PERSONAL_CLONE_EVA_OBJECT_PROGRESS:11111个人树KR进度值克隆主树KR STANDARD_OBJECT_CLONE_EVA_OBJECT_PROGRESS:11111OKR部门树标准O进度值克隆主树（+KR） CUSTOM_OBJECT_CLONE_PERSONAL_PROGRESS:11111OKR部门树自定义O进度值克隆个人树（+KR） RIGHTWARD_CALCULATION:向左取最近可循环周期最新 DOWNWARD_CALCULATION_NOKR:评价对象树向下计算参照值不赋值 DOWNWARD_CALCULATION_NOKR_COPY:评价对象树向下计算参照值并赋值 DOWNWARD_CALCULATION_KR:11111主树向下计算参照值不赋值（O加KR） DOWNWARD_CALCULATION_KR_COPY:11111主树向下计算参照值并赋值（O加KR） DOWNWARD_CALCULATION_ONLY_KR:11111主树向下计算参照值并赋值（KR） DOWNWARD_CALCULATION_PROGRESS:部门目标任务书树非末级只向下计算进度值
     */
    @NotNull(message = "进度值计算公式不能为空")
    @ApiModelProperty("进度值计算公式")
    private String progressValueCalcFormula;

    /**
     * 被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
     */
    @NotNull(message = "被评对象类型编码不能为空")
    @ApiModelProperty("被评对象类型编码")
    private String evaObjTypeCode;

    /**
     * 父子中过程周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @NotNull(message = "父子中过程周期类型不能为空")
    @ApiModelProperty("父子中过程周期类型")
    private String parentSubMidCycleType;

    /**
     * 最近可循环最新周期ID
     */
    @ApiModelProperty("最近可循环最新周期ID")
    private String recentlyNewCycleId;

    /**
     * 更新周期ID
     */
    @NotNull(message = "更新周期ID不能为空")
    @ApiModelProperty("更新周期ID")
    private String updateCycleId;

    /**
     * 数据归属内容表主键ID
     */
    @NotNull(message = "数据归属内容表主键ID不能为空")
    @ApiModelProperty("数据归属内容表主键ID")
    private String belongToContentId;

    /**
     * 冗余评价模板ID
     */
    @NotNull(message = "冗余评价模板ID不能为空")
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

}
